package top.dancun.easuser.controller;


import com.alibaba.fastjson.JSONObject;
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import top.dancun.common.utils.R;
import top.dancun.easuser.utils.OOSUpload;

import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.*;


/**
 * @author dancun
 * 文件上传类
 */
@RestController
@RequestMapping("/file")
public class FileController {

    /**
     * 文件上传
     *
     * @param file
     * @param request
     * @return R
     */
    @PostMapping("/upload")
    public R upload(MultipartFile file, HttpServletRequest request) {
        System.out.println("文件名" + file.getOriginalFilename());
        System.out.println("文件类型" + file.getContentType());
        System.out.println("文件大小" + file.getSize());
        String url = null;
        String extension = "";
        String newFileName = "";
        // 获取文件的后缀
        try {
            InputStream inputStream = file.getInputStream();

            extension = FilenameUtils.getExtension(file.getOriginalFilename());
            // 创建新的文件名字
            String path = new SimpleDateFormat("yyyyMMdd").format(new Date());
            String newFileNamePrefix = UUID.randomUUID().toString();
            newFileNamePrefix = newFileNamePrefix.replace("-", "");
            newFileName = newFileNamePrefix + "." + extension;
            // 处理上传操作
            url = OOSUpload.uploadStream(inputStream,path+newFileName);

        } catch (Exception e) {
            // TODO: handle exception
        };
        if(StringUtils.isBlank(url)){
            return R.error("文件上传失败");
        }

        return R.ok().put("data", url);
    }
}

//    @PostMapping("/")
//    public String getExcelData(MultipartFile file) {
//
//        try {
//            List<List<Object>> lists = ExcelUtils.getUserListByExcel(file.getInputStream(), file.getOriginalFilename());
//            //List<List<Object>>--->List<User>
//            List<Map<String,String>> list = new ArrayList<>();
//            List<String> tag = new ArrayList<>();
//            //
//            for(int i =0;i<lists.get(0).size();i++){
//                String t=String.valueOf(lists.get(0).get(i));
//                switch (t){
//                    case "姓名":
//                        tag.add("tno");
//                        break;
//                    case "教工号":
//                        tag.add("name");
//                        break;
//                    case "密码":
//                        tag.add("pwd");
//                        break;
//                    case "出生日期":
//                        tag.add("birthday");
//                        break;
//                    case "部门编号":
//                        tag.add("dno");
//                        break;
//                    case "联系电话":
//                        tag.add("mobile");
//                        break;
//                    case "账号类型":
//                        tag.add("type");
//                        break;
//                    case "备注":
//                        tag.add("remark");
//                        break;
//                    default:
//                        return "{\"state\":\"0\",\"message\":\"表头格式错误,请下载模板对照\"}";
//                }
//            }
////            switch (list);
//            for (int i = 1; i < lists.size(); i++) {
//                Map<String,String> map = new HashMap<>();
//                for(int x =0;x<lists.get(0).size();x++){
//
//                    map.put(tag.get(x),String.valueOf(lists.get(i).get(x)));
//                }
//                map.put("pwd", DigestUtils.md5DigestAsHex(map.get("pwd").getBytes()));
//                list.add(map);
//            }
//            boolean issuccess=false;
//            try {
////                teacherDao.insertByList(list);
//                issuccess=true;
//            }catch (Exception e){
//                e.printStackTrace();
//                return "{\"state':\"0\",\"message\":\"表头格式错误,请下载模板对照\"}";
//            }
//
//            //插入数据
////            userInfoService.insert(users);
//        } catch (Exception e) {
//            e.printStackTrace();
//            return "{\"state\":\"0\",\"message\":\"表头格式错误,请下载模板对照\"}";
//        }
////        UserInfoExample userExample = new UserInfoExample();
////        List<UserInfo> allusers = userInfoService.selectByExample(userExample);
////        model.addAttribute("all", allusers);
//        return "{\"state':\"1\",\"message\":'导入成功\"}";
//    }
//}
